草庐IT

HTTP 400 错误

全部标签

docker - 从 Go api 连接到 Redshift 时出现 SSL 错误

我有以下代码:funcNewConnection(connectionStringstring)(*sql.DB,error){db,err:=sql.Open("postgres",connectionString)iferr:=db.Ping();err!=nil{log.Panic(err)}returndb,err}以及以下Dockerfile:#BuildenvFROMgolang:alpineASbuildARGstageRUNapkupdate&&apkupgrade&&\apkadd--no-cachebashgitopensshbuild-base&&\goget-u

http - golang http.Post 请求返回响应 404

我已经编写了一个go代码来在我的github存储库中的一个项目中创建一个问题。我正在使用此处提到的参数[https://developer.github.com/v3/issues/#create-an-issue][1]但我收到状态为404的响应。下面是我的代码。packagemainimport("bytes""encoding/json""fmt""net/http")funcmain(){param:=map[string]string{"title":"issue1","body":"aassddrff","assignee":"vigneshkm"}query,_:=jso

unit-testing - 以 http 作为包装函数的依赖项的单元测试

我有以下函数,在@poy的帮助下,我能够为它创建模拟以便对其进行单元测试。现在的问题是我有包装函数也需要测试这是原始函数,已经过测试funchttpReq(cc[]string,methodstring,urlstring)([]byte,error){httpClient:=http.Client{}req,err:=http.NewRequest(method,url,nil)iferr!=nil{returnnil,errors.Wrap(err,"failedtoexecutehttprequest")}//Herewearepassinguserandpasswordreq.

go - 谁能帮我解决这个 GoLand 终端错误

我正在使用GoLandIDE,但在运行我的Go网络应用程序时遇到了问题。使用终端时代码未编译。这是问题所在:当我尝试运行代码时,终端复制了命令提示符。C:\Users\Evan\go\src\awesomeProject9>gorunmain.goC:\Users\Evan\go\src\awesomeProject9>packagemainimport("fmt""html/template""net/http")vartpl*template.Templatefuncinit(){template.Must(template.ParseGlob("templates/*.html"

go - 返回多个错误或相应地处理它们的惯用方法

我有这段代码,但我不喜欢那种不提golint的感觉,不喜欢errorshouldbethelasttypewhenreturnmultipleitems(golint)。解释这段代码:我想让用户决定他们是否关心返回的任何错误特别是在这段代码中,有时不需要或不需要音频文件,可以忽略它无论用户在做什么,都可能总是需要视频和输出文件我愿意以任何方式重构它(将其分解、移动等)Go中是否有更惯用的方式来完成这样的事情?//Downloadwilldownloadtheaudioandvideofilestoaparticularpathfunc(r*RedditVideo)Download()(

database - 在 Firestore 中更新值时没有字段错误

我正在尝试使用golang库更新firestore中的文档。出于某种原因,我收到一个错误:“没有字段\"BirthYear\”错误,我不确定为什么。出生年份绝对是我尝试更新的值之一。我假设我错误地配置了我的结构,但我看不出如何配置。这是我的结构和我的更新代码:sharedstructs.ProfiletypeProfilestruct{UIDstring`json:"UID"firestore:"UID"`ContactEmailstring`json:"ContactEmail,omitempty"firestore:"ContactEmail"`BirthMonthint64`js

Go 应用程序在 NGINX 代理 : HTTP 502 后面不工作

我正在为Go中的webhook创建一个接收器,这是我在Go中的第一个应用程序。我已经在本地测试了该应用程序,它在那里可以正常工作。但现在我已经将它部署在我的Ubuntu服务器上,位于NGINX代理后面的Docker容器中(代理在Docker之外)。pingHandler起作用,gitlabHandler可以发送403消息。但如果token有效,我将始终看到502消息并且NGINX日志告诉我:*1115upstreamprematurelyclosedconnectionwhilereadingresponseheaderfromupstream,client:X.X.X.X,serve

去建立错误: go tool: no such tool “link”

命令后:gobuild显示错误:gotool:nosuchtool"link"详细信息:我的系统是windows10->64位goversion:1.11.5goenv->setGOARCH=386setGOBIN=setGOCACHE=c:\users\john\AppData\Local\go-buildsetGOEXE=.exesetGOFLAGS=setGOHOSTARCH=386setGOHOSTOS=windowssetGOOS=windowssetGOPATH=E:\codigosetGOPROXY=setGORACE=setGOROOT=C:\GosetGOTMPDIR

http - 转到 HTTP 请求 POST header ,等待响应,然后发布分块的正文内容

我正在尝试找出是否有一种方法可以将分块数据发布到HTTP服务器,该服务器在接受我的任何请求正文之前尝试发送header。我有一个服务器,它通过POST请求接收永无止境的数据流。收到新的POST请求后,它会构造header并立即尝试刷新。http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){requestId:=uuid.Must(uuid.NewV4()).String()w.Header().Set("X-Request-Id",requestId)w.Header().Set("Content-Type","ap

sockets - 无需使用 http.Serve 即可激活 Go TLS Socket 服务器服务

我有以下代码和systemd单元文件。我想要做的是激活监听器,而不必使用http.Serve来接受和接收传入连接。如果我将ln,err:=tls.Listen("tcp",listen,config)更改为ln,err:=activation.TLSListener(config)我看到我可以接收数据的唯一方法是使用http.Serve。我在使用ln,err:=activation.TLSListeners.(config)时得到的错误是ln.Acceptundefined(type[]net.ListenerhasnofieldormethodAccept)packagemainim